// Copyright 叶湘 ( weixin:yexiang841, email:yexiang841@qq.com ), Shitouren Studio. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "Q3D_CPPI_InputState.generated.h"

// This class does not need to be modified.
UINTERFACE(MinimalAPI, Blueprintable, meta = (Tooltip = "使用 InputState 必须实现的接口(C++)"))
class UQ3D_CPPI_InputState : public UInterface
{
	GENERATED_BODY()
};

/**
 * 
 */
class Q3D_LIB_API IQ3D_CPPI_InputState
{
	GENERATED_BODY()

	// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:
	UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = Q3D_I_InputState, meta = (Tooltip = "InputState 接口，读取一个装载 ActionMapping 的 DataTable 用于初始化 InputState"))
	void Q3D_IF_InputState_InitDT_GetActionMapping(UPARAM(DisplayName = "ptr_dt_input_action_mapping") UDataTable *&ptr_dt_input_action_mapping) const;

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = Q3D_I_InputState, meta = (Tooltip = "InputState 接口，读取一个装载 AxisMapping 的 DataTable 用于初始化 InputState"))
	void Q3D_IF_InputState_InitDT_GetAxisMapping(UPARAM(DisplayName = "ptr_dt_input_axis_mapping") UDataTable *&ptr_dt_input_axis_mapping) const;
};
